www.gusucode.com > matlab编程盲源分离程序 实现了EFICA、WASOBI、COMBI等算法源码程序 > matlab编程盲源分离程序 实现了EFICA、WASOBI、COMBI等算法源码程序/BSSGUIlunwen/bssg/bssgui_help.m
function bssgui_help(keyword) switch keyword case 'about' helptitle = 'About BSSGUI'; helptext = [... 'X=======================================================================X' '| BSSGUI: Interactive GUI for BSS algorithms control |' 'X-----------------------------------------------------------------------X' ' ' ' GUI by: Jakub Petkov ' ' e-mail: bssgui@centrum.cz ' ' homepage: http://bssgui.wz.cz/ ' ' last modified: 2008-10-07 ' ' version: 2.0 ' ' ' '-------------------------------------------------------------------------' ' by J. Petkov (c) 2008 ' '-------------------------------------------------------------------------']; case 'description' helptitle = 'Description of BSSGUI'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' Description of BSSGUI ' ' --------------------- ' ' ' ' BSSGUI is a Graphical User Interface (GUI) for control of BSS algorithms' ' EFICA, WASOBI, COMBI, MULTI-COMBI, FCOMBI, BGL and Extended EFICA. ' ' It was designed in/for MATLAB 7.1 Release R14SP3. Most of all important ' ' functions are controlled in a main window. The window is divided into 3 ' ' main parts. The first one enables to work with input (source) data, ' ' the second one enables algorithms selection and setting their parameters' ' and the last one enables other function, as for saving and working with ' ' output data and containing important Test data function. ' ' ' ' The BSSGUI is provided in a package containing lightly adjusted M-files ' ' of used algorithms. The application uses msplot(x), showmatrixISR(x) ' ' and gengau(x) functions as well. ' ' ' ' The package contains large detailed HELP support area that makes using ' ' the GUI more comfortable. ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'guide' helptitle = 'Quick-start guide'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' Quick-start guide ' ' ----------------- ' ' ' ' If you want to use the BSSGUI and try to practice blind source separation ' ' without any knowledge about this problem, you can just follow these steps:' ' ' ' 1) Loading data ' ' - Press the LOAD DATA button in the main window of the application. ' ' - Choose a variable containing source data. (loaded from base ' ' workspace of Matlab) ' ' - Confirm loading by pressing the button LOAD. ' ' - Check if a number of signals and a number of samples comes true. ' ' If not, press the TRANSPOSE button to do the transposition. ' ' - Input data can be visualy checked by pressing the PLOT DATA button.' ' ' ' 2) Running the separation ' ' - Select the desired algorithm. (EFICA is default) ' ' - You do not have to set any of its parameters. There are defined ' ' default values, that are optimal for the common separation. ' ' - Press the RUN BUTTON to run the separation. ' ' ' ' 3) Working with outputs ' ' - Press the VIEW ISR button to see the correctness of separation. ' ' (dark fields represent worse separation; black fields mean ' ' nonseparability of concrete components) ' ' - Press the PLOT RESULTS button to see graphical results of ' ' separation. (to check results of separation visualy) ' ' - Presssing the SAVE RESULTS button enables you to save all results ' ' in the base workspace of Matlab or to a user-named file. Just ' ' choose desired destination and type name of variable or file or use' ' clicking the Default button to load pre-defined values of names. ' ' ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'input' helptitle = 'Input (source) data'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' Input (source) data ' ' ------------------- ' ' ' ' The BSSGUI package works with arbitrary data organized into row vectors ' ' saved in variables in the base workspace of Matlab. It can be loaded by ' ' pressing the LOAD DATA button. ' ' ' ' If the matrix of imported source data is organized into a set of column ' ' vectors (check indication in the main window of the application), it can' ' be transposed by pressing the TRANSPOSE button. ' ' ' ' ' ' Examples ' ' -------- ' ' ' ' 1) The easiest way how to create data convenient for practicing the ' ' separation is to use this command: ' ' ' ' x=rand(5,1000); ' ' ' ' It generates a matrix of source data which contains 5 source signals ' ' with 1000 samples. This variable can be used for practicing the ' ' separation. But of course, separation using this generated data is ' ' not illustrative. ' ' ' ' 2) Advanced users can try to generate data prepared specially for each ' ' algorithm they are going to use. That means: ' ' ' ' Lets generate source signals first. ' ' ' ' s(1,:)=rand(1,1000); % uniform distribution ' ' s(2,:)=sign(randn(1,1000)); % binary distribution ' ' s(3,:)=randn(1,1000); % gaussian distribution ' ' s(4,:)=randn(1,1000); % gaussian distribution ' ' ' ' Now generate random matrix A which represents system, where the ' ' source signals s (defined above) are mixed. Dimension of matrix must ' ' be equal to the number of source singals. ' ' ' ' A=rand(4); ' ' ' ' Using following multiplication creates matrix of unknown mixed ' ' signals x. ' ' ' ' x=A*s; ' ' ' ' Load variable x in the GUI by pressing the LOAD DATA button. Now you ' ' can consider which algorithm to use. Our aim is to get back the ' ' source signals without knowledge of system A, just only by running ' ' one of algorithms so we can delete the matrix A from workspace (to ' ' trust that it really works). ' ' ' ' clear A; ' ' ' ' Using one of algorithms on data x gets back a demixing matrix W which' ' multiplicated by mixed signals gets back estimated appearance sw of ' ' source signals s. ' ' ' ' sw=W*x; ' ' ' ' If the separation was 100% succesful data s is equal to sw. Of course' ' that is an impossible situation in real separation because the ' ' demixing matrix cannot be calculated but only estimated by used ' ' algorithm. ' ' ' ' ' ' See also: ' ' ' ' Help -> Data -> Load data ' ' (to see how to load data and how to work with built in demo ' ' signals generator) ' ' ' ' Help -> Algorithms -> Run algorithm ' ' (to get more information about how to run the separation) ' ' ' ' Help -> Plot and view -> Plot source data ' ' (to check visualy appearance of source data) ' ' ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'load' helptitle = 'Load data procedure'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' Data loading ' ' ------------ ' ' ' ' To load input (source) data you want to separate click the button marked' ' as LOAD DATA. There will appear new window where you can select your ' ' variable previously saved in the base workspace. ' ' ' ' Confirm data loading by pressing the LOAD button. ' ' ' ' If your variable does not appear in the window, its name may be ' ' identical to some of the system variables of BSSGUI. Try to change the ' ' name of your variable. ' ' ' ' Forbidden names of variables: ' ' X, dim, N, nastaveni, was_temp, AR_order ' ' ' ' ' ' Example signals (USE DEMO button) ' ' --------------------------------- ' ' ' ' If you are not sure what kind of data you should use to try the BSSGUI ' ' for the first time, you can use example signals generator. ' ' ' ' Pressing the USE DEMO button starts the example signals generator which ' ' creates 3 independent signals with length of 1000 samples mixed by ' ' randomly generated mixing matrix A. The source signals are ' ' ' ' s(1,:)=sinusoid; ' ' s(2,:)=rectangle; ' ' s(3,:)=saw; ' ' ' ' After running the separation you should be able to observe these three ' ' components of signals by pressing the PLOT RESULTS button. ' ' ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'transpose' helptitle = 'Transpose data'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' Transpose data ' ' -------------- ' ' ' ' BSSGUI works with input matrix of source data organized into a set of ' ' row vectors. If your variable consists of a set of column vectors, it ' ' can be transposed by pressing the TRANSPOSE data button. ' ' ' ' After loading the data you may check organization of you loaded variable' ' in the main window of BSSGUI in a panel marked as Mixed signals. Please ' ' check if the number of signals and number of samples are equal to the ' ' reality. If the values dismatch use the TRANSPOSE button to make the ' ' correction. ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'output' helptitle = 'Output data (results)'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' Output data ' ' ----------- ' ' ' ' The output of the separation is expressed in two ways: ' ' ' ' 1) ISR matrix ' ' - ISR = Interference-to-Signal Ratio ' ' - represents a criterion of correctness of the separation ' ' - obtained as a square matrix consisting of zeros in the diagonal ' ' (expressed by white fields) ' ' - after running the separation, press button VIEW ISR to obtain ' ' the ISR matrix plot in grey spectrum, which tells us, how ' ' successful was the separation -> the darker fields the worse ' ' correctness of separation (black fields say that the components ' ' were not separated) ' ' ' ' 2) Estimation of demixing matrix ' ' - marked as W ' ' - if multiplied by mixed source data gives us matrix of separated ' ' signals (estimation of original source data) ' ' ' ' Both of these output matrices can be saved in the base workspace or ' ' in user-defined file. ' ' ' ' ' ' See also: ' ' ' ' Help -> Data -> Save data ' ' (to see how to work with save data functions) ' ' ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'save' helptitle = 'Saving data'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' Save data ' ' --------- ' ' ' ' Results of the separation (ISR matrix and estimation of demixing matrix ' ' W) can be optionally saved into variables in the base workspace or to ' ' user-selected file. ' ' ' ' Follow these steps: ' ' ' ' 1) Choose one of the possibilities ''To workspace'' or ''To file'' ' ' 2) Type name of your variable or file. The fields can be filled ' ' automaticaly by predefined vaues after pressing the DEFAULT button.' ' 3) Press the SAVE data button. ' ' ' ' ' ' See also: ' ' ' ' Help -> Data -> Output data (results) ' ' (to get more information about the data to save) ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'EFICA' helptitle = 'EFICA algorithm'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' EFICA ' ' ----- ' ' ' ' Algorithm based on the Independent Component Analysis (ICA) therefore ' ' it is convenient to use it for separating the non-Gaussian i. i. d. ' ' signals. Other important condition is independence of signal components.' ' Main principle of separation is minimalization of mutual information. ' ' ' ' ' ' Settings (parameters) ' ' --------------------- ' ' ' ' SaddleTest: test of saddle points ' ' (true/false) ' ' ' ' Nonlinearity: type of nonlinearity ' ' (rat1, rat2 - polynomial ' ' tanh - hyperbolic tangential ' ' gaus - gaussian) ' ' ' ' Starting point: starting point of iteration ' ' (randn(dim) - randomly generated matrix ' ' eye(dim) - eye matrix) ' ' ' ' Epsilon: very low value which doesn''t allow to stop ' ' iteration until changes in estimated demixing ' ' matrix are above this value (stop criterion) ' ' ' ' FineEpsilon: value used by finetuning to refine on ' ' a calculation (stop criterion for post ' ' estimation) ' ' ' ' MaxIt: maximum number of FastICA iterations ' ' ' ' MaxItAfterSaddleTest: maximum number of iterations after a saddle ' ' point was indicated ' ' ' ' FinetuneMaxIt: maximum number of improving iterations ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'WASOBI' helptitle = 'WASOBI algorithm'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' WASOBI ' ' ------ ' ' ' ' This algorithm works with stationary stochastic Gaussian processes. ' ' Very important condition for using algorithm WASOBI is the spectral ' ' difference of input signals. The algorithm exploits the time structure ' ' of the signal sources and ignores the sources'' statistical ' ' distributions. ' ' ' ' ' ' Settings (parameters) ' ' --------------------- ' ' ' ' AR order: maximum AR order of the separated sources ' ' ' ' Stabilization: constant that may help to stabilize the ' ' algorithm. It has the meaning of maximum ' ' magnitude of poles of the AR sources. ' ' (rmax=1 - no stabilization is applied ' ' rmax=0.99 - most stable results) ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'COMBI' helptitle = 'COMBI algorithm'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' COMBI ' ' ----- ' ' ' ' This algorithm is used for separating more complicated source signals. ' ' It means that the input signals consist of data with both dimensional ' ' and time structure. It is unable to separate such signals by applicating' ' only one of the algorithms EFICA or WASOBI. ' ' ' ' The COMBI algorithm was developed as an efficient combination of ' ' algorithms EFICA and WASOBI. In principle, COMBI reads the source ' ' signals and analyses which part of the input data is convenient to ' ' separate with each of the two methods. ' ' ' ' ' ' Settings (parameters) ' ' --------------------- ' ' ' ' COMBI uses elementary predefined settings of algorithms EFICA and ' ' WASOBI. ' ' ' ' ' ' See also: ' ' ' ' Help -> Algorithms -> EFICA ' ' (to get more information about used parameters) ' ' ' ' Help -> Algorithms -> WASOBI ' ' (to get more information about used parameters) ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; case 'gendata' helptitle = 'Data generator'; helptext = [... 'X=======================================================================X ' '| BSSGUI: Interactive GUI for BSS algorithms control | ' 'X-----------------------------------------------------------------------X ' ' ' ' Data generator ' ' -------------- ' ' ' ' for i=1:number_of_trials ' ' for j=1:number_of_signals ' ' ' ' s(:,i)=filter([1 1],[1],gengau2(1,1,1000)); ' ' ' '------------------------------------------------------------------------- ' ' by J. Petkov (c) 2008 ' '------------------------------------------------------------------------- ']; % dal氻 zaj韒av mo瀗osti helpu % case 'A' % helptitle = 'Matrix A'; % A = evalin('base', 'A'); % helptext = [num2str(A)]; % case 'B' % web \index.html end helpwin(helptext, helptitle);